In recent years, research and development of various semiconductor memory devices such as a PCM (phase-change memory), an ReRAM (resistive random access memory) and an MRAM (magnetoresistive random access memory) have been advanced. Regarding reading data from a memory cell in a semiconductor memory device, there are various demands such as a demand for reading out the data at high speed and a demand for safely reading out the data. Accordingly, there is a problem how to implement appropriate data reading to meet the demands.